package gdr.window.menu;

import gdr.action.initializer.*;
import gdr.action.descriptor.Azione;
import gdr.battle.graphics.HumanGraphicalClient;
import gdr.window.*;


public class OpzioneAzione extends Opzione{
	protected Azione azione;
	protected HumanGraphicalClient client;
	protected BaseWindow parent;
	
	public OpzioneAzione(Azione azione, String name, boolean isFocusable, boolean isVisible){
		this(null, null, azione, name, isFocusable, isVisible, isFocusable);
	}
	public OpzioneAzione(HumanGraphicalClient client, Azione azione, String name){
		this(client.getActionMenu(), client, azione, name, true, true, true);
	}
	public OpzioneAzione(HumanGraphicalClient client, Azione azione, String name, boolean isFocusable){
		this(client.getActionMenu(), client, azione, name, isFocusable, true, isFocusable);
	}
	public OpzioneAzione(BaseWindow parent, HumanGraphicalClient client, Azione azione, String name, boolean isFocusable, boolean isVisible, boolean isClickable){
		super(name, isFocusable, isVisible, isClickable);
		this.azione = azione;
		this.client = client;
		this.parent = parent;
	}
	
	public void enter(){
		ActionInitializer ai = azione.getActionInitializer(client.getGdr(), client);
		parent.addChild(ai);
		//inizializza l'azione
		ai.init();
		//nasconde il genitore
		parent.hide();
	}
}